Checks key exists rather than isset

If the default value is set to `null`, `isset` will return `false` even though the key is actually there for a reason.
I'm not 100% I follow yet...

```
`some_field` varchar(60) COLLATE utf8_unicode_ci DEFAULT NULL
```

This is the current state of a text field for one of our tables. If we don't explicitly set '"default":NULL' in the annotations then the generated SQL is;

```
`some_field` varchar(60) COLLATE utf8_unicode_ci
```

Adding the default caused the issue I was experiencing that this patch fixes.

I think this is the correct and as expected in one way or another, I don't see how this is a problem with the comparator? You could argue that the comparator should know, but that may be giving it too much intelligence?

To jump onto the other side of the fence I'd be happy to take a look at it from the comparator side if you think there is still work to do?