This solution creates whitespace on empty lines. That was one of the reasons I reflected on the buffer contents for empty lines before.

```
str = ""
stream = Stream.new(str).indent
indented.nl
indented.nl
str # "  \n  \n"
```
This might be acceptable for SQL as we'll not need empty lines? In ruby I needed to generate empty lines between multiple  `def` statements in a class.