Общий принцип:
когда речь идёт не просто о географическом (название территории), но об административно-географическом названии (названии, например, государства), употребляется "в".
Пример:
"Я лечу в Сингапур" (в государство, город) и "на острове Сингапур" (территория).
На Урале, на Алтае, на Кавказе, на Сахалине, на Д. Востоке, но в Украине, в Беларуси, в Литве, в Армении, в России. В первой части предложения перечислены географические названия (территории), во-второй - административно-географические (страны).
Также как "на Дону" (территория) и "в Ростове" (город), "на Кубани" (территория) и "в Краснодаре" (город). Ехать "на море в Италию", лезть "на гору в Швейцарии" и т.д.
Характерный пример: выражения "на Цейлоне" и "в Шри-Ланке". Речь идёт об одном и том же острове, но "Шри-Ланка" - это независимое государство, а "Цейлон" - территория в составе метрополии.
Привычка говорить "на Украине" сложилась именно потому, что Украина с 1654 года была фактически частью метрополии, как тот самый Цейлон. Именно по этой причине употреблялся предлог "на", который и вошёл в привычку. Естественно, когда Украина стала независимым государством в обиход, по крайней мере, официальный вошёл предлог "в".
А потом главстерх открытым текстом стал говорить, что Украина - не государство, а территория, а Институт русского языка им. В.В. Виноградова РАН, "подтвердил" мнение лучшего друга всех филологов, употребив вместо правила стереотипное заклинание про "результат исторического развития языка на протяжении долгого времени". Но под такой "аргумент", конечно, можно, что угодно подвести.
---
Можно также посмотреть в Д.Э. Розенталь "Справочник по правописанию и литературной правке"; под редакцией И.Б. Голуб, 16-е издание, Айрис-пресс, 2012, 368 стр.