Búsqueda de text vietnamita Unicode en SQLite

Estoy planeando escribir una aplicación para iOS que use SQLite como back-end. Mi database contiene text vietnamita como "Hải Sơn" . Los usuarios, al estar acostumbrados a la búsqueda de Google, quieren ingresar un término de búsqueda como "hai son" para encontrar el text de arriba. Probé la siguiente consulta:

SELECT * FROM towns WHERE title LIKE '%hai son%'; 

Y obtuve un récord de 0. ¿Cómo hago esto para que funcione? Sé que Google y otros motores de búsqueda manejan este caso, por lo que se puede hacer. Tampoco quiero que mis usuarios escriban el text vietnamita con marcas diacríticas completas porque no todos los usuarios saben cómo hacerlo.

Actualizar

Miré la documentation de sqlite3 y parece que hay solo tres secuencias de sorting válidas: BINARY, NOCASE y RTRIM. ¿Me estoy perdiendo de algo?.

Más información

Mi tabla se creó con:

 CREATE TABLE towns ( sid INTEGER PRIMARY KEY NOT NULL, title TEXT ) 

Hasta ahora, solo usé la línea de command sqlite3 para crear la database, la tabla y el text de import desde un file CSV.

Mi sqlite3 está en la versión 3.7.12

Actualización 2

Alias me dio una idea: crear mi propia secuencia de sorting. Publicaré un seguimiento si funciona.

Prueba esto:

 SELECT * FROM towns WHERE title COLLATE UTF8CI LIKE '%hai son%'; 

Relacionado con la respuesta encontrada aquí: ¿Cómo puedo convertir una columna a ASCII sobre la marcha sin save para comprobar si hay coincidencias con una cadena ASCII externa?

Sé que esto es hilo antiguo, pero encontré una solución para publicarlo para otros. Si está utilizando la biblioteca sqlite3, puede usar sqlite3_bind_text()

como abajo

 ... sqlite3_stmt *detailStmt; NSString *t1=@"%%Hải Sơn%%"; const char *sql = "SELECT * FROM towns WHERE title LIKE ?"; if(sqlite3_prepare_v2(database, sql, -1, &detailStmt, NULL) == SQLITE_OK) { sqlite3_bind_text(detailStmt, 1, [t1 UTF8String], -1, SQLITE_TRANSIENT); ...