Clients based on bitcoinj don't use a database for the wallet, they use a single file. As a result you can, with a bit of effort, maintain wallets in any directory you want. MultiBit lets you do that, for example. There's also a command line tool called wallet-tool in the bitcoinj distribution that lets you do things like this:
./wallet-tool --wallet=/foo/foo.wallet --chain=/foo/foo.chain --action=DUMP
./wallet-tool --wallet=/foo/foo.wallet --chain=/foo/foo.chain --action=SEND --output=1AbCdE....:2.0
and so on.
The main caveat with this is that at the moment, bitcoinj does not support automatic rescanning if the wallet gets out of sync with the chain file. That's why you need to specify and store the .chain (it's a few megabytes) alongside the wallet.
Obviously at some point soon we'll fix that and then you can just have a single chain file somewhere else that's used with multiple wallets.