У меня была похожая проблема, и я решил ее, дав псевдонимы столбцов в моем довольно сложном запросе, затем я использовал эти псевдонимы в качестве ссылок, например:
Начало моего запроса:
SELECT lith.drill_id, lith.depth_from,
...
...
cursor.getColumnIndex("depth_from") gave -1
Затем я добавил псевдонимы столбцов:
SELECT lith.drill_id AS drill_id, lith.depth_from as depth_from,
...
...
cursor.getColumnIndex("depth_from")
затем дал правильное значение.