This just reimplements the exact same run storage interface but with a sqlite backend. Very barebones
what do you think is good about the provider setup as opposed to just passing the file or ':mem:' to the constructor?
I suppose with this setup its actually SqlRunStorage since the only thing that knows its sqlite is the connection provider
So it doesn't work for :mem: because everytime you new up a new connection with ":mem:" it is totally new. So you need to hold onto the connection object.