In the US, airline-canceled or "significantly delayed" flights (as opposed to passenger-canceled) are entitled to a full refund. The airline will not tend to tell you this, and they'll resist quite a bit, but you're legally entitled to one, even on a non-refundable ticket.