The statement: SELECT "tbl".'col' FROM tbl; Is *not* standard SQL. SQLite accepts it in a misguided effort to follow [Postel's Rule][1]. But that does not make it right. The conversion of the string literal `'col'` into an identifier `"col"` occurs during parsing and requires a level of understanding of the SQL language far in excess of what is available to sqlite3_normalize_sql(). I'm not sure the automatic conversion of string-literals into identifiers is even documented. Is it? [1]: https://en.wikipedia.org/wiki/Robustness_principle