What I would suggest for your case would be to create a case-insensitive index on your search field, and then force the select to use that index in its search.
CREATE INDEX iCaseInsensitive ON myTable(myColumn COLLATE NOCASE);
...
SELECT * FROM myTable INDEXED BY iCaseInsensitive WHERE myColumn <expr>;
Note that with this system, if you are putting conditions on other columns, you will either have to add those columns to the index, or use a JOIN.
Another possibility I just thought of, if the COLLATE NOCASE does not work with your character set, create the index from the column already converted to lower case
CREATE INDEX iCaseInsensitive ON myTable(Lower(myColumn));