Да!
см. следующую выдержку из документации по адресу:
http://www.sqlite.org/inmemorydb.html
Но это не прямое подключение к памяти БД, а к общему кешу. Это обходной путь. см. картинку.

Базы данных в памяти и общий кэш
Базы данных в памяти могут использовать общий кэш, если они открываются с использованием имени файла URI. Если для указания базы данных в памяти используется незакрашенное имя «: memory:», то эта база данных всегда имеет частный кэш, и это видно только для соединения с базой данных, которое первоначально открыло ее. Однако одну и ту же базу данных в памяти можно открыть двумя или более подключениями к базе данных следующим образом:
rc = sqlite3_open("file::memory:?cache=shared", &db);
Или
ATTACH DATABASE 'file::memory:?cache=shared' AS aux1;
Это позволяет отдельным соединениям с базой данных использовать одну и ту же базу данных в памяти. Конечно, все соединения с базой данных, совместно использующие базу данных в памяти, должны быть в одном процессе. База данных автоматически удаляется, а память восстанавливается при закрытии последнего соединения с базой данных.
Если в одном процессе необходимы две или более различных, но совместно используемых баз данных в памяти, то параметр mode = memory query можно использовать с именем файла URI для создания именованной базы данных в памяти:
rc = sqlite3_open("file:memdb1?mode=memory&cache=shared", &db);
Или,
ATTACH DATABASE 'file:memdb1?mode=memory&cache=shared' AS aux1;
Когда база данных в памяти названа таким образом, она будет совместно использовать свой кэш только с другим соединением, которое использует точно такое же имя.