If you are using System.Data.Sqlite you can use a custom collation sequence and modify it for your needs ... an example:
/// <summary>
/// User-defined collating sequence using the current UI culture.
/// </summary>
[SQLiteFunction(Name = "MYSEQUENCE", FuncType = FunctionType.Collation)]
class MySequence : SQLiteFunction
{
public override int Compare(string param1, string param2)
{
return String.Compare(param1, param2, true);
}
}
Your SQL query to use the custom collation sequence above might look like this:
SELECT * FROM MyTable ORDER BY MyChineseColumn COLLATE MYSEQUENCE DESC
(source: http://sqlite.phxsoftware.com/forums/p/862/3779.aspx#3779)
You just can set collation at table creation and build indices on that column.
But remember, you won't be able to access table from other sqlite engine where collation not defined.