This is the basic structure I'm using in an app.
getDatabasePath will handle any detail on unzip, copy, etc,
index will do all the usual dirty work, including withDatabase that won't explode if the database is missing
WatermelonProvider to cover original one til the DB is ready
I can say that this solution still work.
My personal struggle was that I misunderstood how I should create watermelon.db file, some sql statement packed into text file with .db extension not worked for some reason and I was able to solve it only by creating db file via "DB browser for sqlite".
I'm not sure if it will be difficult to prepopuate db later after multiple consecutive migrations.