SQLite Forum

IS NULL optimization on NOT NULL constraints breaks on corrupted databases
To add to what drh wrote, from the documentation for sqlite3_get_table() (both of which he probably also wrote):

> NULL values result in NULL pointers. All other values are in their UTF-8 zero-terminated string representation as returned by sqlite3_column_text().

So the documented interface says it is possible for the table to include NULL values and it does not allow wiggle room for "unless the schema" exceptions.