i said about product options... not product sku.
Abantecart allow to set sku for option too.
For ex. you have product with name "shoes". Shoes have 2 options: size and color. For all combination of this properties merchant can set different values of sku. that's why changing of core is difficult right now.
You showed me your custom, partial, solution.
Why do you don't change method getOrderProducts() on file public_html/admin/model/sale/order.php ?
it used by sale/invoice.php controller.
FYI. you don't need to create new connection to database. Instance of db-class is already in memory.
you can do
$this->db->query($sql)
in any controllers and models
or
$registry = Registry::getInstance()
$registry->get('db')->query(sql);
everywhere in code
But personally i prefer to create custom extension with hooks of controllers.. this approach saves your changes after cart upgrade.