Как говорится, проблема, которую можно решить деньгами, не проблема. Так и в SQLite вроде бы и есть проблемы, а вроде бы и есть стандартные их решения.
Вывод типа - запрашиваешь функцию с соответствием номера поля и типа.
Строковые идентификаторы таблиц, полей не проверяются компилятором, как в том же protobuf, но можно создать константу на каждый идентификатор и уже их использовать.
Строки в экзотических кодировках и бинарные данные если вставишь в запрос, то получишь проблем. Но можно вставить через аргументы, но при этом не забудь сосчитать правильное их количество, чтобы правильно составить запрос.
И т.д и т.п.
Вот есть JSON и Protobuf. Есть SQL и хотелось бы найти что-то аналогичное protobuf для БД. )