SQLite does support memory databases, but afaik it does not support specifying what memory to use for the memory database and does not support dumping a memory database to disk (although the latter has been asked for many times).
As far as implementing it yourself, both System.Data.SQLite and sqlite core are open source so it's certainly an option, but keep in mind that sqlite is written in C and most of the changes have to be made there, so you need to have C developers available to do it. Not everyone on this forum realizes that the core engine is a C library.
In a fairly recent edition of sqlite the core developers changed the way it works with the underlying operating system to add more abstraction in the form of a virtual file system. This change will make the task of working with an existing memory stream much easier than it would have been previously. Of course you'll also need to change the wrapper to support passing the stream along to the core, and of course the stream needs to be seekable.
HTH,
Sam
We're hiring! B-Line Medical is seeking .NET Developers for exciting positions in medical product development in MD/DC. Work with a variety of technologies in a relaxed team environment. See ads on http://careerbuilder.com.