I know how infuriating this is for you guys, BUT - read your tems and conditions as soon as you take out the polciy. (or preferrably before) This is a hard lesson to learn and I've done it myself years ago. Nowadays I read all the small print and make sure I'm happy with it first.
It's all in there for you to see. You can't blame the company if they informed you and you didn't bother to read it.
Virtually all insurance companies have this sliding scale of rebate amounts which is different depending on how long you have been on risk. And this is not necessarily down to Sky as they are only the broker, aren't they? Often these amounts are determined by the insurer who underwrites your policy.
One way to get a pro-rata rebate from the insurer is to say you're buying a car they probably won't cover. e.g. some insurance companies won't insure a GTR34 Skyline or a Corvette convertible etc. As THEY are the party who want out of the agreement, they have to effect the cancellation, not you. As the sliding scale thingy only applies to the situation where the Policy-Holder cancels their policy, in this type of case they normally pay you out pro-rata for any outstanding amount still 'unused' on your policy.
As already said, you could say you want to insure a Corsa from now until renewal. They will then recalculate your premium on a pro-rata basis returning any excess payment to you. Then once you have received this amount, cancel the insurance on the Corsa which of course will be a smaller amount of premium to lose.