Como promisificar uma função MySql usando bluebird?

Há algum tempo, decidi mudar do PHP para o nó. Nos meus primeiros projetos, não queria usar nenhum ORM, pois pensei que não precisava complicar muito a minha vida aprendendo outra coisa (no momento em que estava aprendendo nó e angular), por isso decidi usar o pacote mysql sem algo mais. É importante dizer que tenho algumas consultas complexas e não queria aprender com o sctratch como fazê-las funcionar usando um dos nós do 9000 ORM, isto é o que tenho feito até agora:

thing.service.js

Thing.list = function (done) {
  db.query("SELECT * FROM thing...",function (err,data) {
    if (err) {
      done(err)
    } else {
      done(null,data);
    }
  });
};
module.exports = Thing;

thing.controler.js

Thing = require('thing.service.js');
Thing.list(function (err,data) {
  if (err) {
    res.status(500).send('Error D:');
  } else {
    res.json(data);
  }
});

como posso promisificar esse tipo de função usando bluebird? Eu já tentei, mas .... aqui estou pedindo ajuda. Isto é o que eu tentei

var Thing = Promise.promisifyAll(require('./models/thing.service.js'));

Thing.list().then(function(){})

questionAnswers(0)

yourAnswerToTheQuestion