Once the database is created and populated in memory, I want to compress it, and then print it to stdout (it's a response to an http/rest request).
I don't think SQLite is a pretty good transport format, partly because it is binary, and partly because the file format may change (so your client needs to know different SQLite formats). Why don't you use a format that is directly readable, like JSON, XML or YAML? All of those formats won't change, can simply be stored in a perl scalar, and all of them can be compressed very well.
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)