System.Data.SQLite is just a ADO.NET wrapper around the standard SQLite3 database engine core. If you like playing with C# or D-Flat then I suppose that you can just build the wrap-about yourself and replace the core (sqlite3.c/sqlite3.h) with whatever version you desire. In so far as System.Data.SQLite is merely a wrapper I doubt that the version of the SQLite3 core is of much consequence except that it provide the minimum level of C API expected for the operation of the wrapper -- just as you can replace the "core" version of SQLite3 within the Python "wrapper" with any version you desire so long as the replacement provides the minimum C API required by the wrapper. The basic functions of "parse an SQL statement", "bind parameters to a statement", "execute the statement and get the next row" and "retrieve the value of result column" are unaffected by changes/additions/deletions to the underlying SQL statement text. Note that I have never actually used the System.Data.SQLite ADO wrapper nor replaced core database code to see what happens. I have "replaced" the SQLite core version in various other wrappers though such as pysqlite2 and apsw, which works as one would expect -- it is an uneventful change.