The cache.db file is the new downloading system for add-on data and content since version 17 or 18 (forget which). Before, when you joined a server, you'd download all the image, model, sound, files you'd need into folders in your add-ons directory that took the place just like they'd be stored as in the server, that is, if you didn't already have them, in which case you'd use whatever file you had. The new system removes the need to make tons of almost empty add-on folders in your add-ons directory, and apparently speeds up the time it takes to download files when connecting to a server with new content. All the data for models, images, sounds, etc. are stored in the cache.db file, if you delete it, nothing happens except that when connecting to a server you'll need to redownload all the sounds/models/images for all items/vehicles/players/etc. in the server all over again that you lost data for when you deleted the cache.db file. Sqlite is the name of the database type, in a sense, and it gives an error message when it can't properly edit the database, the main reason for this is not being able to write to the file, which as has been said, usually results from a custom blockland directory, or having multiple blockland instances open at once from the same directory.