Right now this looks a lot like how we interact with memcache which is probably good -- but one of the nice things about use a database is that we know what's going to be coming back; and what the defaults are when we push partial data in. It is also possible with a DB to do simple upgrades to complex datatypes (e.g. add/modify columns).
I feel like this needs some sort of method to perform migrations & the ability to set default values at install time (much like our database updater.)
We may wish to enforce typing as well with something similar to ContentHandler such that we know what is currently in a key.