I have a fix for this thats a litle different than your solution. I switched to using a DataTable instead of IDataReader so no connection is held open during the loop.
public void ResortPages()
int i = 1;
DataTable table = GetChildPageIds();
foreach(DataRow row in table.Rows)
int pageID = Convert.ToInt32(row["PageID"]);
i += 2;
This will be in svn trunk later today.
I am glad you are working with the Sqlite version and flushing out the bugs. It is not as well tested as MS SQL or MySql because I don't run any production sites using SQLite. Your help in finding these issues is much appreciated.