Chop onion, set aside. In a food processor, puree 2 cans of corn so that it is a little chunky. Set aside.
In a large pot over medium-high heat, cook bacon for about 6 minutes or until crisp. Remove with a slotted spoon and drain on a paper-towel lined plate.
Add onion to pot and cook for about 4 minutes, stirring occasionally, or until golden brown. If you did not make the bacon, drizzle the pan with olive oil before adding the onion. Add garlic and cook for 1 minute. Add flour and stir constantly for 2 minutes.
Whisk in chicken broth. Add potatoes, thyme, milk (regular milk at this time), and pureed corn. Bring to a boil. Reduce heat to medium-low and simmer for about 10 minutes or until potatoes are tender. Using a potato masher, press down on the potatoes 4 to 5 times. Stir in cooked bacon.
In a food processor, pulse the remaining 2 cans of corn for about 3-5 seconds, depending on the consistency that you like. Add the rest of the corn and heavy cream and cook an additional 5 minutes. Stir in salt and pepper. Ladle chowder into bowls. Top each serving with a little cheddar cheese.