Do you really need zipvfs? You talk about your storage budget, but what's you RAM budget? Compared to your storage budget? I've just in the past few days ZIP'd up several SQLite DBs, to make them as small as possible (also VACUUM'd and optimized the page_size for minimum size) so I can check them in to source control, for testing, and dynamically decompress them using https://www.sqlite.org/zipfile.html at runtime, and load the blobs as in-memory DBs using https://www.sqlite.org/c3ref/deserialize.html, which sounds a little bit like your use case. Worked like a charm for me, but I'm in C++, not Java, and it's all linked statically. Only issue I can foresee, if that this might waste more RAM than zipvfs, but not having used the latter, I can't say for sure.