Ключевой причиной хранения процедур в базе данных является то, что вы выполняете код SP в том же процессе, что и механизм SQL. Это имеет смысл для механизмов баз данных, предназначенных для работы в качестве службы, подключенной к сети, но императив для SQLite гораздо меньше. Учитывая, что он работает как DLL в вашем текущем процессе, имеет смысл реализовать SP на языке клиента.
Однако вы можете расширить SQLite с помощью собственных пользовательских функций на языке хоста (PHP, Python, Perl, C #, Javascript , Ruby и т. Д.) , Я сделал это в C # , используя SQLite DevArt для реализации хеширования пароля.